package de.vogella.gwt.helloserver.client;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

import de.vogella.gwt.helloserver.client.model.Arbeitsgang;
import de.vogella.gwt.helloserver.client.model.Belegposition;
import de.vogella.gwt.helloserver.client.model.Bestellung;
import de.vogella.gwt.helloserver.client.model.Lagerbestand;
import de.vogella.gwt.helloserver.client.model.Lagerplatz;
import de.vogella.gwt.helloserver.client.model.Geschaeftspartner;
import de.vogella.gwt.helloserver.client.model.Produkt;

// 
@RemoteServiceRelativePath("Service")
public interface Service extends RemoteService {

	public String getLogin(String benutzer);
	
	public List<Produkt> FindProdukt(Produkt p);	
	public Produkt GetProdukt(String ID);	
	public Boolean addProduct(Produkt newProdukt);
	public Boolean editProduct(Produkt editProdukt);
	public void deleteProduct(String id);
	public Produkt getProdukt(String ID);
	public ArrayList<Produkt> getProdukte();
	
	public List<String> getAllEinheiten();	
	public List<String> getAllProduktgruppen();
	public List<String> getVersandarten();
	public List<String> getZahlungsarten();
	
	public List<Geschaeftspartner> findLieferant(Geschaeftspartner lief);
	public List<Geschaeftspartner> getLieferanten();
	public String getLieferantenID(String unternehmen);		
	
	public ArrayList<Lagerbestand> getLagerbestand();
	public ArrayList<Lagerplatz> getLagerplaetze();
	public ArrayList<Lagerplatz> getFilledLagerplaetzePerformance();
	public Lagerbestand insertLagerbestand(Lagerbestand bestand);
	
	public ArrayList<String> getBelegarten();
	public void insertBestellkopf(Bestellung kopf);
	public ArrayList<Bestellung> getNichtGeliefert();
	public Bestellung getBestellkopf(String id);
	public ArrayList<Belegposition> getBelegpositionen(String bestellkopfID);
	public Boolean insertBelegposition(Belegposition neu);
	
	public Boolean insertGeschaeftspartner(Geschaeftspartner neu);	
	
	public ArrayList<Arbeitsgang> getArbeitsgang(String produktID);
	public ArrayList<String> getBauplan(String produktID);
	
	
}